
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
; DATA
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
align 4
d1fishframetbl  dd      cspr03,cspr04
d1fishseed      dd      10010111010010101101111011000010b

d1fishx         dw      10 dup(0)
d1fishy         dw      10 dup(?)
d1fishframe     db      10 dup(0)

d1fishyaddtbl   db      -100,0,0,100

d1fishendcntr   db      10
d1fishinitcntr  db      10
d1fishinitcntr2 db      1

;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
; CODE
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

;ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
p10:                                    ; fishies
        mov ebp,_vidptr
        sub ebp,5
        mov esi,9
        mov ecx,d1fishseed
p10l0:
        movzx edi,d1fishx[esi*2]
        sub edi,3
        jc p10l0c
        mov d1fishx[esi*2],di
        jnz short p10l0f0
        dec d1fishendcntr
        jnz short p10l0c
        mov d1fishendcntr,10
        mov d1fishinitcntr,10
        jmp setnext
p10l0f0:
        mov eax,edi
        and eax,3
        mov al,vidbittbl2[eax]
        shr edi,2
        add edi,ebp
        movzx ebx,cl
        and bl,3
        movsx ebx,d1fishyaddtbl[ebx]
        movzx edx,d1fishy[esi*2]
        add ebx,edx
        cmp ebx,100*183
        ja short p10l0f1
        mov edx,ebx
p10l0f1:
        mov d1fishy[esi*2],dx
        add edi,edx
        ror ecx,11
        adc ecx,12345671h
        mov dx,3c5h
        movzx ebx,d1fishframe[esi]
        xor bl,1
        mov d1fishframe[esi],bl
        call d1fishframetbl[ebx*4]
p10l0c:
        add ecx,esi
        sub esi,1
        jnc p10l0

        movzx edx,d1fishinitcntr
        sub dl,1
        jc short p1f0
        dec d1fishinitcntr2
        jnz short p1f0
        mov d1fishinitcntr,dl
        mov al,cl
        and al,15
        add al,4
        mov d1fishinitcntr2,al
        mov d1fishx[edx*2],342
        movzx eax,ch
        and al,7fh
        add al,27
        imul eax,100
        mov d1fishy[edx*2],ax
        ror ecx,5
        adc ecx,59f4132fh
p1f0:
        mov d1fishseed,ecx
        ret

